# Répertoire de travail :
SRC = ./src
INC = ./src/include
BIN = ./bin
DATA = ./data

# Nom des exécutables a générer :
BINTEST = $(BIN)/test

# Compilateur
CC = gcc

# Flags de compilation
CFLAG = -g -Wall -ansi -pedantic -I$(INC)

all: $(BINTEST) cleano

$(BINTEST): $(BIN)/main.o $(BIN)/user.o $(BIN)/client.o $(BIN)/message.o
	@$(CC) -o $(BINTEST) $(BIN)/main.o $(BIN)/user.o $(BIN)/client.o $(BIN)/message.o -lpthread $(LDFLAGS)
	
$(BIN)/main.o: $(SRC)/main.c $(SRC)/user.h $(SRC)/client.h
	@$(CC) -o $(BIN)/main.o -c $(SRC)/main.c $(CFLAGS)

$(BIN)/user.o: $(SRC)/user.c $(SRC)/user.h $(SRC)/inclusion.h
	@$(CC) -o $(BIN)/user.o -c $(SRC)/user.c $(CFLAGS)
	
$(BIN)/client.o: $(SRC)/client.c $(SRC)/client.h $(SRC)/message.h $(SRC)/user.h $(SRC)/inclusion.h
	@$(CC) -o $(BIN)/client.o -c $(SRC)/client.c $(CFLAGS)

$(BIN)/message.o: $(SRC)/message.c $(SRC)/message.h $(SRC)/user.h $(SRC)/inclusion.h
	@$(CC) -o $(BIN)/message.o -c $(SRC)/message.c $(CFLAGS)
	

cleano:
	@rm -rf $(BIN)/*.o

clean:
	@rm -rf $(BIN)/*  
	@rm -rf $(DATA)/*

mrproper: clean
	@rm -rf $(BINTEST)
